reftests: override GSETTINGS_SCHEMA_DIR when running tests
authorCosimo Cecchi <cosimo@endlessm.com>
Sat, 16 Jul 2016 18:48:32 +0000 (11:48 -0700)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 25 Jul 2016 12:34:52 +0000 (08:34 -0400)
The reftest depends on a schema we install ourselves. Instruct GIO to
look in the build directory to avoid a cyclic dep.

https://bugzilla.gnome.org/show_bug.cgi?id=768930

testsuite/reftests/Makefile.am
testsuite/reftests/gtk-reftest.c

index 69ef0cdfcea7b7448e1707ba0e1b95553c9336af..068d9f801e63157781669359129b44e95cb72eb5 100644 (file)
@@ -464,6 +464,22 @@ EXTRA_DIST +=                      \
        reftests.test.in        \
        $(NULL)
 
+GTK_GSETTINGS_SCHEMAS = \
+       $(top_srcdir)/gtk/org.gtk.Settings.ColorChooser.gschema.xml \
+       $(top_srcdir)/gtk/org.gtk.Settings.FileChooser.gschema.xml \
+       $(NULL)
+
+BUILT_SOURCES = gschemas.compiled
+
+CLEANFILES = gschemas.compiled
+
+gschemas.compiled: $(GTK_GSETTINGS_SCHEMAS)
+       $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) \
+               $(addprefix --schema-file=,$(GTK_GSETTINGS_SCHEMAS)) \
+               --targetdir=$(builddir)
+
+all-am: gschemas.compiled
+
 if BUILDOPT_INSTALL_TESTS
 insttestdir=$(libexecdir)/installed-tests/$(PACKAGE)
 insttest_PROGRAMS = gtk-reftest
index 193fd0341a77cfdeccabf6680768fcd01321eddd..4930af8184229fe9ee0b5b1d8a5a2ebb2546cbed 100644 (file)
@@ -58,6 +58,7 @@ parse_command_line (int *argc, char ***argv)
 {
   GError *error = NULL;
   GOptionContext *context;
+  char *schema_dir;
 
   context = g_option_context_new ("- run GTK reftests");
   g_option_context_add_main_entries (context, test_args, NULL);
@@ -71,6 +72,11 @@ parse_command_line (int *argc, char ***argv)
 
   gtk_test_init (argc, argv);
 
+  /* g_test_build_filename must be called after gtk_test_init */
+  schema_dir = g_test_build_filename (G_TEST_BUILT, "", NULL);
+  g_setenv ("GSETTINGS_SCHEMA_DIR", schema_dir, TRUE);
+  g_free (schema_dir);
+
   if (g_strcmp0 (arg_direction, "rtl") == 0)
     gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
   else if (g_strcmp0 (arg_direction, "ltr") == 0)